(define (record-exports name fields)
  (let ((name (symbol->string name))
	(fields (map symbol->string fields)))
    (print (append (list (string-append name)
			 (string-append name "?")
			 (string-append "make-" name))
		   (map (lambda (f)
			  (string-append name "-" f))
			fields)
		   (map (lambda (f)
			  (string-append name "set-" f "!"))
			fields)))))

(record-exports 'box '(value))
(record-exports 'kons '(kar kdr))
(record-exports 'btree '(node left-branch right-branch))
